Установка Oracle 11g на Windows 7
Данная инструкция предназначена для установки Oracle Database 11g на ОС Windows 7 64bit исключительно для целей разработки и тестирования на локальной машине разработчика.
Исходя из этого, Oracle настраивается с минимально необходимым количеством доступных ресурсов для разработки небольших проектов в рамках курса. Рекомендации, описанные ниже абсолютно неприменимы для развертывания Oracle Database для промышленной эксплуатации и/или работы под большой нагрузкой с существенными объемами данных.
- Скачайте дистрибутив Oracle с официального сайта http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html Все редакции Oracle (без патчей) доступны бесплатно для целей разработки и тестирования, функциональность и объемы памяти/диска не ограничены.

- Распакуйте оба архива в одну директорию
D:\temp\oracle - Запустите
D:\temp\oracle\database\setup.exeи выберите настройки, как указано на скриншотах ниже.
Ключевые моменты:- Выбрать "Install database software only" - только устанавливает ПО, не создавая экземпляр Oracle. Это будет сделано вручную после установки
- Исключить из списка русский язык, чтобы все сообщения были на английском, таким образом избавив себя от некоторых проблем с кодировками
- Выбрать Enterprise Edition и набор необходимых опций. Для данного курса дополнительные опции не потребуются, так что можно снять все чек боксы.






=


- После установки появится папка D:\app... со следующими ключевыми файлами:
- D:\app\Eugene\product\11.2.0\dbhome_1\BIN\sqlplus - клиент командной строки Oracle. Пока не создан экземпляр базы данных он бесполезен.
- D:\app\Eugene\product\11.2.0\dbhome_1\NETWORK\ADMIN - после настройки Listener и создания базы тут появятся конфигурационные файлы listener.ora и tnsnames.ora в которых прописаны хост, порт и названия инстансов БД для подключения к ним клиентов.
- D:\app\Eugene\product\11.2.0\dbhome_1\BIN\dbca.bat - Database Configuration Assistant - UI утилита для создания экземпляра Oracle
- D:\app\Eugene\product\11.2.0\dbhome_1\BIN\netca.bat - Network Configuration Assistant - UI утилита для создания Listener-а, который необходим для подключения клиентов к экземпляру Oracle.
- Запустите
D:\app\Eugene\product\11.2.0\dbhome_1\BIN\netca.bat как Administrator (правой кнопкой мыши → Run as administrator)
Добавьте новый листенер, оставив все значения по-умолчанию. По окончании настройки, в консольном окне должно появится сообщение Listener started successfully или сообщение об ошибке.








- Запустите D:\app\Eugene\product\11.2.0\dbhome_1\BIN\dbca.bat как Administrator (правой кнопкой мыши → Run as administrator)
Большинство параметров можно оставить по-умолчанию, но некоторые необходимо поменять, как на экранах ниже:
-
Не выбирать шаблон с данными, выбрать Custom Database
-
Имя экземпляра и SID оставить одинаковыми (стандартно для локальной установки берут ORCL, либо другое короткое запоминающееся имя)
-
Выключить Enterprise Manager и Automatic Maintenance
-
Указать пароли для системных пользователей SYSTEM и SYS (стандартный пароль - manager)
-
Выключить Flash Recovery
-
Снять все опции на Database Components и "Standard Database Components". Можно оставить только Oracle JVM - с ней идет много полезных по функциональности пакетов, которые могут пригодится в разработке. Некоторые опции можно и оставить, но они существенно замедлят создание базы, Oracle XML DB занимает распространенные сетевые порты компьютера (8080) и может конфликтовать с другими приложениями.
-
Уменьшить объем доступной Oracle оперативной памяти до минимума. Если вы оставили Oracle JVM, то рекомендуется оставить больше памяти (например, 1Gb), иначе возможны ошибки во время создания экземпляра, например,
ORA-00604: ошибка на рекурсивном SQL-уровне 1 ORA-04031: невозможно выделить 4096 байт разделяемой памяти ("java pool","unknown object","JOXLE^ebb55619",":SGAClass") -
Указать кодировку для cтрокового типа AL32UTF8 вместо системной по-умолчанию WIN1251. Это позволит хранить символы всех алфавитов в типе VARCHAR2
-
Процесс создания экземпляра достаточно долгий и может занимать от 10 минут до нескольких часов, в зависимости от мощности машины и выбранных опций

















- Поменять параметр реестра через regedit, чтобы окончательно отучить утилиты командной строки Oracle (sqlplus) говорить по-русски с неправильной кодировкой. Целевое значение для ключа
NLS_LANG:AMERICAN_AMERICA.CL8MSWIN1251

-
После создания экземпляра Oracle необходимо сделать несколько проверок:
-
Панель управления → Администрирование → Службы: Должны появиться 2 ключевых сервиса: OracleOraDB11g_home1TnsListener и OracleServiceORCL. Эти службы должны быть запущены, но, если вы не пользуетесь Oracle постоянно, для экономии памяти их можно поставить в режим "Manual" и включать при необходимости. Названия служб может меняться в зависимости от того, как вы назвали Listener и экземпляр.
-
В командной строке ввести
sqlplus system/manager@ORCLгде manager - ваш пароль для аккаунта SYSTEM, указанный при создании экземпляра.
Если после этого вы получили ошибку ORA-12514: TNS:listener does not currently know of service requested in connect , попробуйте выполнить следующие шаги:
-
Проверить D:\app...\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora и tnsnames.ora существуют и содержат примерно следующее (HH2 - это имя вашей машины, либо ее IP адрес)
listener.ora Развернуть исходный код
# listener.ora Network Configuration File: D:\app\Eugene\product\11.2.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = D:\app\Eugene\product\11.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:D:\app\Eugene\product\11.2.0\dbhome_1\bin\oraclr11.dll")
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = HH2)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
ADR_BASE_LISTENER = D:\app\Eugenetnsnames.ora Развернуть исходный код
# tnsnames.ora Network Configuration File: D:\app\Eugene\product\11.2.0\dbhome_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
ORACLR_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
(CONNECT_DATA =
(SID = CLRExtProc)
(PRESENTATION = RO)
)
)
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = HH2)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCL)
)
)после изменения listener.ora требуется перезапустить сервис Listener
-
Зайти в базу данных локально как sysdba, выполнить команду alter system register, которая зарегистрирует инстанс в listener-e форсированно и повторить попытку соединиться через Listener как описано выше.
>sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on Sat Sep 30 01:35:46 2017
Copyright (c) 1982, 2010, Oracle. All rights reserved.
SQL> connect / as sysdba
Connected.
SQL> alter system register;
System altered.
SQL> exit
- Создать своего пользователя, под которым уже создавать свои таблицы и другие объекты.
>sqlplus.exe system/manager@ORCL
SQL*Plus: Release 11.2.0.1.0 Production on Sat Sep 30 01:37:56 2017
Copyright (c) 1982, 2010, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning and OLAP options
SQL> create user eugene identified by mysecretpassword;
User created.
SQL> grant connect, resource to eugene;
Grant succeeded.
SQL> connect eugene/mysecretpassword@ORCL
Connected.
SQL>